home *** CD-ROM | disk | FTP | other *** search
- head 1.2;
- branch 1.2.1.99;
- access;
- symbols;
- locks; strict;
- comment @ * @;
-
-
- 1.2
- date 94.11.16.06.21.14; author jason; state Exp;
- branches
- 1.2.1.1;
- next 1.1;
-
- 1.1
- date 94.10.28.04.14.08; author jason; state Exp;
- branches;
- next ;
-
- 1.2.1.1
- date 94.11.16.07.08.31; author jason; state Exp;
- branches;
- next 1.2.1.2;
-
- 1.2.1.2
- date 94.12.09.05.29.56; author jason; state Exp;
- branches;
- next ;
-
-
- desc
- @SGI style window borders
- @
-
-
- 1.2
- log
- @complete Motif style borders
- @
- text
- @/******************************************************************************
-
- $Id: border.c 1.1 1994/10/28 04:14:08 jason Exp jason $
-
- $Log: border.c $
- * Revision 1.1 1994/10/28 04:14:08 jason
- * Initial revision
- *
-
- ******************************************************************************/
-
-
- #ifndef NOT_EXTERN
- #include"agl.h"
- #endif
-
-
- /******************************************************************************
- void drawborder(long id)
-
- if id<0, draw all window borders
-
- ******************************************************************************/
- /*PROTOTYPE*/
- void drawborder(long id)
- {
- long x,y,lenx,leny;
- long w,h;
- long ledge;
- long wid,old_wid;
- long m,a,b;
- long midcolor;
- long darkcolor=DARKGREY;
- long start,end;
-
- old_wid=CurrentWid;
-
- if(id<0)
- {
- start=0;
- end=MAX_WINDOWS;
- }
- else
- {
- start=id;
- end=id+1;
- }
-
- for(wid=start;wid<end;wid++)
- if(GLWindow[wid] && Bordered[wid])
- {
- winset(wid);
-
- if(GLFocus==wid)
- midcolor=LAVENDER;
- else
- midcolor=LIGHTGREY;
-
- w=BorderWidth;
- h=BorderHeight;
-
- ledge= BorderWidth>5? 2: 1;
-
- get_dimensions(wid,TRUE,&x,&y,&lenx,&leny);
-
- deactivate_clipping(wid);
-
-
- /* title bar */
- agl_box(wid,midcolor,midcolor, w,w,lenx-w-1,w+h-1,TRUE);
- agl_box(wid,WHITE,darkcolor, w,w,lenx-w-1,w+h-1,FALSE);
-
- /* title text */
- agl_text(wid,BLACK, w+h+2,w+h-3,TitleList[wid]);
-
- /* options button divider */
- line3d(wid,darkcolor,WHITE, w+h-1,w+1,w+h-2,TRUE);
-
-
- /* edges */
- for(m=0;m<ledge;m++)
- {
- agl_box(wid,WHITE,darkcolor, m,m,lenx-1-m,leny-1-m,FALSE);
- agl_box(wid,darkcolor,WHITE, w-1-m,w-1-m,lenx-w+m,leny-w+m,FALSE);
- }
-
- for(m=0;m<w-2*ledge;m++)
- agl_box(wid,midcolor,midcolor, ledge+m,ledge+m,lenx-1-ledge-m,leny-1-ledge-m,FALSE);
-
-
- /* sizing dimples */
- if(Sizeable[wid])
- {
- /* left */
- a=1;
- b=w-ledge-1;
- line3d(wid,darkcolor,WHITE, a,w+h-1, b,FALSE);
- line3d(wid,darkcolor,WHITE, a,leny-w-h-1, b,FALSE);
-
- /* right */
- a=lenx-w+1;
- b=lenx-2;
- line3d(wid,darkcolor,WHITE, a,w+h-1, b,FALSE);
- line3d(wid,darkcolor,WHITE, a,leny-w-h-1, b,FALSE);
-
- /* top */
- a=1;
- b=w-ledge-1;
- line3d(wid,darkcolor,WHITE, w+h-1,a, b,TRUE);
- line3d(wid,darkcolor,WHITE, lenx-w-h-1,a, b,TRUE);
-
- /* bottom */
- a=leny-w+1;
- b=leny-2;
- line3d(wid,darkcolor,WHITE, w+h-1,a, b,TRUE);
- line3d(wid,darkcolor,WHITE, lenx-w-h-1,a, b,TRUE);
- }
-
- /* black title outline */
- agl_box(wid,BLACK,BLACK, w-1,w-1,lenx-w-1,w+h-1,FALSE);
-
-
- activate_clipping(wid);
-
- }
-
- winset(old_wid);
- }
-
-
- /******************************************************************************
- void line3d(long wid,long c1,long c2,long x1,long y1,long xy2,long vertical)
-
- horizontal or vertical line with 3D effect
- from x1,y1 to x1,xy2 or xy2,y1
-
- c1 is the top/left color
- c2 is the bottom/right color
-
- ******************************************************************************/
- /*PROTOTYPE*/
- void line3d(long wid,long c1,long c2,long x1,long y1,long xy2,long vertical)
- {
- struct RastPort *rp;
-
- rp=GLWindow[wid]->RPort;
-
- /* top/left */
- SetAPen(rp,c1);
-
- Move(rp,x1,y1);
- if(vertical)
- {
- Draw(rp,x1,xy2);
- x1++;
- }
- else
- {
- Draw(rp,xy2,y1);
- y1++;
- }
-
- /* bottom/right */
- SetAPen(rp,c2);
-
- Move(rp,x1,y1);
- if(vertical)
- Draw(rp,x1,xy2);
- else
- Draw(rp,xy2,y1);
- }
-
-
- /******************************************************************************
- void agl_box(long wid,long c1,long c2,long x1,long y1,long x2,long y2,
- long fill)
-
- for unfilled, c2 specifies different color for right and bottom
-
- ******************************************************************************/
- /*PROTOTYPE*/
- void agl_box(long wid,long c1,long c2,long x1,long y1,long x2,long y2,long fill)
- {
- struct RastPort *rp;
-
- rp=GLWindow[wid]->RPort;
-
- SetAPen(rp,c1);
-
- if(fill)
- RectFill(rp,x1,y1,x2,y2);
- else
- {
- Move(rp,x2,y1);
- Draw(rp,x1,y1);
- Draw(rp,x1,y2);
-
- if(c1!=c2)
- SetAPen(rp,c2);
-
- Draw(rp,x2,y2);
- Draw(rp,x2,y1);
- }
- }
-
-
- /******************************************************************************
- void agl_test(long wid,long c,long x,long y,char *string)
-
- ******************************************************************************/
- /*PROTOTYPE*/
- void agl_text(long wid,long c,long x,long y,char *string)
- {
- struct RastPort *rp;
-
- rp=GLWindow[wid]->RPort;
-
- SetAPen(rp,c);
-
- Move(rp,x,y);
- Text(rp,string,(ULONG)strlen(string));
- }
- @
-
-
- 1.2.1.1
- log
- @forced update
- @
- text
- @d3 1
- a3 1
- $Id: border.c,v 1.2 1994/11/16 06:21:14 jason Exp jason $
- d5 1
- a5 4
- $Log: border.c,v $
- * Revision 1.2 1994/11/16 06:21:14 jason
- * complete Motif style borders
- *
- @
-
-
- 1.2.1.2
- log
- @border buttons with feedback
- @
- text
- @d3 1
- a3 4
- Copyright © 1994 Jason Weber
- All Rights Reserved
-
- $Id: border.c,v 1.2.1.1 1994/11/16 07:08:31 jason Exp jason $
- a5 3
- * Revision 1.2.1.1 1994/11/16 07:08:31 jason
- * forced update
- *
- d22 1
- a22 1
- void drawborder(long id,long button)
- a25 7
- button:
- 0 = none
- 1 = menu button pressed
- 2 = title pressed
- 3 = minimize pressed
- 4 = maximize pressed
-
- d28 1
- a28 1
- void drawborder(long id,long button)
- d34 1
- a34 2
- long m;
- long a,b,c;
- a70 18
- /* clear title bar */
- agl_box(wid,midcolor,midcolor, w,w,lenx-w-1,w+h-1,TRUE,FALSE);
-
- #if TRUE
- /* title text */
- agl_text(wid,BLACK, w+h+2,w+h-3,TitleList[wid]);
-
- /* title box */
- agl_box(wid,WHITE,darkcolor, w+h,w,lenx-w-2*h-1,w+h-2,FALSE,button==2);
-
- /* re-cover min/max area */
- agl_box(wid,midcolor,midcolor, lenx-w-2*h,w+1,lenx-w-1,w+h-2,TRUE,FALSE);
-
- /* options button box */
- agl_box(wid,WHITE,darkcolor, w,w,w+h-1,w+h-2,FALSE,button==1);
-
- /* minimize button box */
- agl_box(wid,WHITE,darkcolor, lenx-w-2*h,w,lenx-w-h-1,w+h-2,FALSE,button==3);
- d72 3
- a74 5
- /* maximize button box */
- agl_box(wid,WHITE,darkcolor, lenx-w-h,w,lenx-w-2,w+h-2,FALSE,button==4);
-
- #else
- agl_box(wid,WHITE,darkcolor, w,w,lenx-w-1,w+h-1,FALSE,FALSE);
- a78 3
- /* re-cover min/max area */
- agl_box(wid,midcolor,midcolor, lenx-w-2*h-1,w+1,lenx-w-1,w+h-1,TRUE,FALSE);
-
- d80 1
- a80 13
- a=w+h-1;
- b=w+1;
- c=w+h-2;
- line3d(wid,darkcolor,WHITE, a,b,c,TRUE,FALSE);
-
- /* maximize button divider */
- a=lenx-w-h-1;
- line3d(wid,darkcolor,WHITE, a,b,c,TRUE,FALSE);
-
- /* minimize button divider */
- a=lenx-w-2*h-1;
- line3d(wid,darkcolor,WHITE, a,b,c,TRUE,FALSE);
- #endif
- a81 23
- /* options logo */
- a=w+h/2+1;
- b=w+h/2;
- agl_box(wid,midcolor,BLACK, a-2,b-1,a+2,b+1,FALSE,FALSE);
- a--;
- b--;
- agl_box(wid,BLACK,BLACK, a-2,b-1,a+2,b+1,FALSE,FALSE);
-
- /* maximize logo */
- a=lenx-w-h/2-1;
- b++;
- agl_box(wid,midcolor,BLACK, a-2,b-2,a+2,b+2,FALSE,FALSE);
- a--;
- b--;
- agl_box(wid,BLACK,BLACK, a-2,b-2,a+2,b+2,FALSE,FALSE);
-
- /* minimize logo */
- a=lenx-w-h*3/2;
- b++;
- agl_box(wid,midcolor,BLACK, a-1,b-1,a+1,b+1,FALSE,FALSE);
- a--;
- b--;
- agl_box(wid,BLACK,BLACK, a-1,b-1,a+1,b+1,FALSE,FALSE);
- d86 2
- a87 2
- agl_box(wid,WHITE,darkcolor, m,m,lenx-1-m,leny-1-m,FALSE,FALSE);
- agl_box(wid,darkcolor,WHITE, w-1-m,w-1-m,lenx-w+m,leny-w+m,FALSE,FALSE);
- d91 1
- a91 2
- agl_box(wid,midcolor,midcolor, ledge+m,ledge+m,lenx-1-ledge-m,leny-1-ledge-m,
- FALSE,FALSE);
- d123 1
- a123 1
- agl_box(wid,BLACK,BLACK, w-1,w-1,lenx-w-1,w+h-1,FALSE,FALSE);
- d179 1
- a179 1
- long fill,long inverse)
- a182 2
- inverse will reverse colors
-
- d185 1
- a185 1
- void agl_box(long wid,long c1,long c2,long x1,long y1,long x2,long y2,long fill,long inverse)
- d191 1
- a191 4
- if(inverse)
- SetAPen(rp,c2);
- else
- SetAPen(rp,c1);
- d202 1
- a202 6
- {
- if(inverse)
- SetAPen(rp,c1);
- else
- SetAPen(rp,c2);
- }
- @
-
-
- 1.1
- log
- @Initial revision
- @
- text
- @d3 1
- a3 1
- $Id: $
- d5 4
- a8 1
- $Log: $
- d19 3
- a21 1
- void drawborder(long wid)
- d25 1
- a25 1
- void drawborder(long wid)
- d28 122
- d151 28
- a178 1
- get_dimensions(wid,&x,&y,&lenx,&leny);
- d180 24
- a203 4
- /* top */
- draw_line(wid,WHITE, 0,0,lenx-1,0);
- draw_line(wid,LIGHTGREY, 1,1,lenx-2,1);
- draw_line(wid,DARKGREY, 2,2,lenx-1,2);
- d208 1
- a208 1
- void draw_line(long wid,long c,long x1,long y1,long x2,long y2)
- d212 1
- a212 1
- void draw_line(long wid,long c,long x1,long y1,long x2,long y2)
- d216 1
- a216 1
- rp=GLWindow[wid]->rp;
- d219 3
- a221 2
- Move(rp,x1,y1);
- Draw(rp,x2,y2);
- @
-